// Learn TypeScript:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/typescript.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/typescript.html
// Learn Attribute:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/reference/attributes.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
//  - [Chinese] http://docs.cocos.com/creator/manual/zh/scripting/life-cycle-callbacks.html
//  - [English] http://www.cocos2d-x.org/docs/creator/manual/en/scripting/life-cycle-callbacks.html

const {ccclass, property} = cc._decorator;

@ccclass
export default class HeadGroup extends cc.Component {

  @property(cc.Sprite)
  head: cc.Sprite = null;
  @property(cc.Label)
  score: cc.Label = null;
  @property(cc.Node)
  bgScore: cc.Node = null;

  private action: cc.Action;

  onLoad() {
    this.node.opacity = 0;
    this.action = cc.fadeOut(0.5)
  }

  start() {

  }

  private timeoutId = -100;

  show(name: string, score: number, spriteFrame: cc.SpriteFrame) {
    this.head.spriteFrame = spriteFrame;
    this.score.string = score.toString();
    this.node.opacity = 255;
    setTimeout(() => {
      this.bgScore.width = this.score.node.width + 60;
    });
    clearTimeout(this.timeoutId);
    this.node.stopAllActions();
    this.timeoutId = setTimeout(() => {
      this.node.runAction(this.action);
    }, 1000)
  }

  onDestroy() {
    clearTimeout(this.timeoutId);
    this.node.stopAllActions();
  }


  // update (dt) {}
}
